Stored Procedures কী?
Stored Procedures হল পূর্বনির্ধারিত SQL কুয়েরি বা অপারেশনগুলোর একটি সেট, যা ডেটাবেসের ভিতরে সংরক্ষিত এবং পরিচালিত হয়। এগুলি একাধিক SQL কুয়েরি, শর্ত বা লজিকাল অপারেশন নিয়ে গঠিত, যেগুলি পূর্বে একবার সংজ্ঞায়িত করা হয় এবং পরে প্রয়োজনমতো একাধিক বার চালানো যায়। একটি Stored Procedure মূলত একটি নামকৃত SQL স্ক্রিপ্ট যা ডেটাবেস সার্ভারে রান করা হয়, এবং এটি ব্যবহারকারী বা অ্যাপ্লিকেশন দ্বারা কল করা যায়।
Stored Procedure সাধারণত একটি ডেটাবেসে সংরক্ষিত এবং পুনরায় ব্যবহারের জন্য তৈরি করা হয়, যার ফলে ডেটাবেস অ্যাপ্লিকেশনটি বেশি কার্যকরী এবং সহজ হয়।
Stored Procedures এর সুবিধা
- পারফরম্যান্স বৃদ্ধি:
- Stored Procedures ডেটাবেসে একবার কম্পাইল হয়ে সংরক্ষিত হয়, যার ফলে পুনরায় প্রয়োগের সময় কোন ধরনের কম্পাইলিং প্রয়োজন হয় না। এটি কুয়েরির কার্যকারিতা এবং পারফরম্যান্স বাড়িয়ে তোলে।
- কোড পুনঃব্যবহারযোগ্যতা:
- একাধিক অ্যাপ্লিকেশন বা ব্যবহারকারী একটি
Stored Procedureব্যবহার করতে পারে, যার ফলে কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত হয়।
- একাধিক অ্যাপ্লিকেশন বা ব্যবহারকারী একটি
- ডেটাবেস স্তরের লজিক:
- ডেটাবেসের ভিতরে লজিকাল কাজ করা সম্ভব হয়, যার ফলে অ্যাপ্লিকেশন লেভেলে বেশি কাজ করার প্রয়োজন হয় না।
- নিরাপত্তা:
- Stored Procedure এর মাধ্যমে ডেটাবেসের কিছু লজিকাল কাজ এক্সিকিউট করা যায়, তবে সরাসরি টেবিল বা ডেটা অ্যাক্সেস করার অনুমতি না দিয়ে। এর ফলে ডেটাবেসের নিরাপত্তা বেড়ে যায়।
- ত্রুটি হ্যান্ডলিং:
- Stored Procedures ত্রুটি হ্যান্ডলিং এবং ট্রানজেকশন ব্যবস্থাপনা সহজ করে তোলে। ডেটাবেস অপারেশনগুলো একটি নির্দিষ্ট ফ্রেমওয়ার্কে পরিচালিত হয়, যার ফলে ত্রুটি কম হয়।
Stored Procedures ব্যবহার করার কারণ
- ডেটাবেস অপারেশনগুলো একত্রিত করা:
- একাধিক SQL কুয়েরি বা ডেটাবেস অপারেশনগুলো একত্রিত করার জন্য একটি Stored Procedure ব্যবহার করা হয়, যাতে এগুলো একযোগভাবে কার্যকরী হয়।
- ট্রানজেকশন পরিচালনা:
- একাধিক ডেটাবেস অপারেশন একটি ট্রানজেকশনের মধ্যে পরিচালনা করা যেতে পারে। এর ফলে, একাধিক অপারেশন সফল না হলে সবকিছু রোলব্যাক করা যায়, যা ডেটাবেসের একসাথে সঠিকতা এবং স্থিতিস্থাপকতা নিশ্চিত করে।
- শর্তযুক্ত লজিক প্রয়োগ:
- Stored Procedure ব্যবহার করে শর্তযুক্ত লজিক (যেমন
IF,CASEবাLOOP) প্রয়োগ করা যায়, যা SQL কুয়েরি বা অপারেশনের মধ্যে আরও লজিক্যাল ও কাঠামোগত অপারেশনগুলো তৈরি করতে সাহায্য করে।
- Stored Procedure ব্যবহার করে শর্তযুক্ত লজিক (যেমন
- ডেটাবেস অ্যাপ্লিকেশনের জটিলতা কমানো:
- Stored Procedure ব্যবহার করলে, অ্যাপ্লিকেশন কোড থেকে জটিল SQL কুয়েরি এবং লজিক সরানো যায়, এবং ডেটাবেস স্তরে এগুলো পরিচালনা করা সম্ভব হয়।
- নেটওয়ার্ক ট্র্যাফিক কমানো:
- বড় এবং জটিল SQL অপারেশনগুলো একবারে ডেটাবেসে চালানো হয়, যা নেটওয়ার্ক ট্র্যাফিক কমিয়ে দেয় এবং ক্লায়েন্ট-সার্ভার ইন্টারঅ্যাকশন দ্রুত করে তোলে।
Stored Procedure তৈরি করার উদাহরণ
ধরা যাক, আমাদের একটি employees টেবিল আছে এবং আমরা এই টেবিল থেকে নির্দিষ্ট department_id অনুসারে সমস্ত কর্মচারী (employees) ফেচ করতে চাই। এর জন্য একটি Stored Procedure তৈরি করা যায়।
Stored Procedure তৈরি করা:
CREATE PROCEDURE get_employees_by_department(IN dept_id INT)
LANGUAGE SQL
BEGIN
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = dept_id;
END;
এই উদাহরণে, get_employees_by_department নামে একটি Stored Procedure তৈরি করা হয়েছে, যেটি dept_id ইনপুট প্যারামিটার হিসেবে নেয় এবং employees টেবিল থেকে সেই বিভাগের কর্মচারীদের তথ্য বের করে।
Stored Procedure কল করা:
CALL get_employees_by_department(10);
এখানে, 10 হচ্ছে ইনপুট প্যারামিটার হিসেবে যে department_id এর কর্মচারীদের তথ্য আমরা চাই।
Stored Procedure-এর উন্নত বৈশিষ্ট্য
IN, OUT, INOUT প্যারামিটার:
- Stored Procedure তে ইনপুট (
IN), আউটপুট (OUT), এবং ইনপুট/আউটপুট (INOUT) প্যারামিটার ব্যবহার করা যায়।
উদাহরণ:
CREATE PROCEDURE update_employee_salary(IN emp_id INT, OUT new_salary DECIMAL) BEGIN UPDATE employees SET salary = salary * 1.10 WHERE employee_id = emp_id; SELECT salary INTO new_salary FROM employees WHERE employee_id = emp_id; END;- Stored Procedure তে ইনপুট (
Error Handling:
- DB2-এ, Stored Procedure তে ত্রুটি হ্যান্ডলিং
DECLARE CONTINUE HANDLERদ্বারা করা যায়।
উদাহরণ:
CREATE PROCEDURE safe_update_employee(IN emp_id INT, IN new_salary DECIMAL) BEGIN DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN -- Handle error ROLLBACK; END; UPDATE employees SET salary = new_salary WHERE employee_id = emp_id; COMMIT; END;- DB2-এ, Stored Procedure তে ত্রুটি হ্যান্ডলিং
সারসংক্ষেপ
- Stored Procedures হল পূর্বনির্ধারিত SQL কুয়েরির একটি সেট যা ডেটাবেসে সংরক্ষিত এবং একাধিক বার ব্যবহার করা যায়।
- এগুলি পারফরম্যান্স বাড়ানোর জন্য, কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করার জন্য, নিরাপত্তা এবং ত্রুটি হ্যান্ডলিংয়ের জন্য গুরুত্বপূর্ণ।
- Stored Procedures DB2 ডেটাবেসের কার্যকারিতা, নিরাপত্তা এবং স্থিতিস্থাপকতা নিশ্চিত করতে সহায়ক এবং এগুলির মাধ্যমে SQL কুয়েরির কার্যকারিতা অপ্টিমাইজ করা যায়।
Read more